home *** CD-ROM | disk | FTP | other *** search
/ PC Users 1998 June / Cd Pc Users 9.iso / prog / inst / baslibs / clsfifo.cls < prev    next >
Encoding:
Text File  |  1996-12-04  |  1.3 KB  |  75 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "clsFifo"
  6. Attribute VB_Creatable = False
  7. Attribute VB_Exposed = False
  8. Option Explicit
  9.  
  10. '
  11. ' A FIFO (First In First Out) buffer.
  12. '
  13. Private vData As New Collection
  14.  
  15. '
  16. '  Adds an item to the FIFO
  17. '
  18. Public Sub Push(v As Variant)
  19.    If vData.Count = 0 Then
  20.       vData.Add v
  21.    Else
  22.       vData.Add v, , , vData.Count
  23.    End If
  24. End Sub
  25.  
  26. '
  27. '  Clears all items from the FIFO
  28. '
  29. Public Sub Clear()
  30.    Set vData = New Collection
  31. End Sub
  32.  
  33. '
  34. ' Returns the number of items in the FIFO
  35. '
  36. Public Property Get Count() As Integer
  37.    Count = vData.Count
  38. End Property
  39.  
  40.  
  41.  
  42. '
  43. '  Returns an item from the FIFO
  44. '
  45. Public Function Pop() As Variant
  46.    If vData.Count = 0 Then
  47.       Pop = Null
  48.    Else
  49.       If VarType(vData(1)) = vbObject Then
  50.         Set Pop = vData(1)
  51.       Else
  52.          Pop = vData(1)
  53.       End If
  54.       vData.Remove 1
  55.    End If
  56. End Function
  57.  
  58. '
  59. '  Returns the next item in the FIFO but does
  60. '  not remove it from the FIFO
  61. '
  62. Public Function Peek() As Variant
  63.    If vData.Count = 0 Then
  64.       Peek = Null
  65.    Else
  66.       If VarType(vData(1)) = vbObject Then
  67.          Peek = vData(1)
  68.       Else
  69.          Peek = vData(1)
  70.       End If
  71.    End If
  72. End Function
  73.  
  74.  
  75.